<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>姓名案例_watch实现</title>
  <script src="../js/vue.js"></script>
</head>

<body>
  <div id="root">
    姓：<input type="text" v-model="firstName"><br />
    名：<input type="text" v-model="lastName"><br />
    全名：<span>{{ fullName }}</span>
  </div>

  <script>
    Vue.config.productionTip = false

    const vm = new Vue({
      el: '#root',
      data: {
        firstName: '张',
        lastName: '三',
        fullName: ''
      },
      watch: {
        firstName: {
          immediate: true,
          handler(newValue, oldValue) {
            this.fullName = newValue + '-' + this.lastName
          }
        },
        lastName: {
          immediate: true,
          handler(newValue, oldValue) {
            this.fullName = this.firstName + '-' + newValue
          }
        }
      }
    })
  </script>
</body>

</html>